package verwaltung;
import java.beans.*;
import java.io.*;
import java.util.*;

public class Seminar {
	
	private ArrayList<Teilnehmer> teilnehmer;
	
	public Seminar(){
		teilnehmer = new ArrayList<Teilnehmer>();
	}

	public int teilnehmerAnzahl() {
		return teilnehmer.size();
	}

	public String gibNummer(int i) {
		return teilnehmer.get(i).toString();
	}

	public String teilnehmerausgeben() {
		String out = "";
		for (Teilnehmer t : teilnehmer) {
			out += t.toString()+"\n";
		}
		return out;
	}

	public void teilnehmerErgaenzen(String name, int leseInt) {
		teilnehmer.add(new Teilnehmer(name, leseInt));
		
	}

	public void teilnehmerLoeschen(int loesche) {
		teilnehmer.remove(loesche);
		
	}

	public void teilnehmerSortieren() {
		Collections.sort(teilnehmer);
	}

	public String doppelteZeigen() {
		String out = "";
		for (int i = 0; i <= teilnehmer.size()-1;i++){
			for(int j = i+1; j<= teilnehmer.size()-1;j++){
				if(teilnehmer.get(i).equals(teilnehmer.get(j))){
					out += teilnehmer.get(i).toString()+"\n";
				}
			}
			
		}
		return out;
	}

	public void teilnehmerAendern(int nummer, String nameNeu, int alterNeu) {
		teilnehmer.get(nummer).setAlter(alterNeu);
		teilnehmer.get(nummer).setName(nameNeu);
	}

	public int gibAlterZuTeilnehmer(int nummer) {
		return teilnehmer.get(nummer).getAlter();
	}

	public String gibNameZuTeilnehmer(int nummer) {
		return teilnehmer.get(nummer).getName();
	}

	public void teilnehmerAufmischen() {
		Collections.shuffle(teilnehmer);
	}
	
	public void saveList(String name){
		XMLEncoder out = null;
		try{
			out = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(name)));
			out.writeObject(teilnehmer);
		} catch (FileNotFoundException e){
			System.err.println(e);
		} finally {
			out.close();
		}
		
	}
	
	@SuppressWarnings("unchecked")
	public void loadList(String name){
		XMLDecoder in  = null;
		try{
			in = new XMLDecoder(new BufferedInputStream(new FileInputStream(name)));
			teilnehmer.clear();
			teilnehmer = (ArrayList<Teilnehmer>) in.readObject();
		} catch (FileNotFoundException e){
			System.err.println(e);
		} finally {
			if(in != null) in.close();
		}
	}

}
